Code Error Utility
Install
npm i --save @darkwolf/code-error
Concept
Everything is an object!
There are only properties and arguments!
Custom error class instances must be called a namespace using PascalCase and end with 'Error' (ex. CustomNamespaceError)
Use kebab-case to name namespaces, codes, and error types
Use the following types for error types:
property-required
invalid-property-type
invalid-property-value
unknown-property
property-return-invalid-type
property-return-invalid-value
argument-required
invalid-argument-type
invalid-argument-value
unknown-argument
argument-return-invalid-type
argument-return-invalid-value
Pass state to error instance
Use a directory called 'utils' to store custom error class instances, errors and validators
Following this concept, we can easily handle errors exceptions dynamically
Usage
const CodeError = require('@darkwolf/code-error')
class DarkwolfError extends CodeError {
constructor(...args) {
super(...args)
this.namespace = 'darkwolf'
}
}
const INVALID_DARKWOLF_ID = new DarkwolfError('invalid-darkwolf-id', 'Invalid Darkwolf ID')
try {
throw INVALID_DARKWOLF_ID
} catch (e) {
switch (e.namespace) {
case 'darkwolf': {
switch (e.code) {
case 'invalid-darkwolf-id': {
doSmth()
break
}
default: throw e
}
break
}
default: throw e
}
}
Init
new CodeError(params[namespace, code, type, message, state] || ...[code, message])
Methods
setNamespace(namespace)
setCode(code)
setType(type)
setMessage(message)
setState(newState || callback(state => newState))